我使用的是MPU6050 GY521,STM32F407,软件模拟iic。
问题描述:
MPU6050之前使用正点原子的例程可以读出数据,但是和超声波测距的程序融合在一起以后就出不来数据,而且现在单独使用MPU6050也都不出数据了。 单步调试发现if(mpu_dmp_get_data(&pitch,&roll,&yaw)==0)在这句中,mpu_dmp_get_data(&pitch,&roll,&yaw)的返回值为-1,if进不去,我一层一层查下去,main.c中mpu_dmp_get_data(&pitch,&roll,&yaw)>>inv_mpu.c中dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors,&more)>>inv_mpu_dmp_motion_driver.c中mpu_read_fifo_stream(dmp.packet_length, fifo_data, more)的返回值是-1>>inv_mpu.c中st.chip_cfg.dmp_on=0。 所以最根源是由于st.chip_cfg.dmp_on这个变量的值不对,不知道是什么问题。 |